
import axios from "axios"
import Vue from 'vue';
import { Toast } from 'vant';
Vue.use(Toast);

const instance=axios.create({
    baseURL:"http://kumanxuan1.f3322.net:8001",
    timeout:5000
})

// 请求拦截器
// 发送请求前执行此代码,config是axios封装好的本次请求详情的一个对象
instance.interceptors.request.use(config=>{
    // !!!在这个函数中,可以做一些请求发出去之前的准备工作,例如把token添加到请求头

    let token=localStorage.getItem("token")
    if(token){
        // 把token设置到请求头中
        config.headers["X-Nideshop-Token"]=token
    }
    // 请求时提示加载中
    Toast.loading({
        message: '加载中...',
        forbidClick: true,
    });
    // 需要返回config才能成功发出请求
    return config
},err=>{
    return Promise.reject(err)
})

// 响应拦截器
// 接收到响应后--then方法执行前,执行此处代码
instance.interceptors.response.use(res=>{
    // 统一管理错误提示
    // 如果res.errno不为0,显示出错
    let data=res.data
    if(data.errno!=0){
        console.log("响应拦截器中", data.errmsg || "网络出错");
    }
    // 请求完成后清除
    Toast.clear();

    return data
},err=>{
    return Promise.reject(err)
})

export default instance

// 执行顺序:请求前拦截--响应后拦截--返回给页面